﻿using CASFacturacion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace SistemaFacturacionWeb
{
    public partial class Formulario_web13 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }



        private bool HayCamposObligatoriosvacios()
        {
            
            String IdCliente = this.TxtIdCliente.Text;
            String nombres = this.TxtCupoCliente.Text;
            String apellidos = this.TxtApellidoCliente.Text;
            String cupo = this.TxtCupoCliente.Text;

            return (String.IsNullOrEmpty(IdCliente) || String.IsNullOrEmpty(nombres) ||
                String.IsNullOrEmpty(apellidos) || String.IsNullOrEmpty(cupo));
        }


        //private bool EsCorrectoFormatoDeFecha()
        //{
        //    bool respuestaADevolver = false;

        //    try
        //    {
        //        DateTime fecha = Convert.ToDateTime(this.TxtEmailCliente.Text);
        //        respuestaADevolver = true;
        //    }
        //    catch (Exception)
        //    {
        //        respuestaADevolver = false;
        //    }

        //    return respuestaADevolver;
        //}


        private bool CupoEsUnNumero()
        {
            bool respuestaADevolver = false;

            try
            {
                int cupo = Convert.ToInt32(this.TxtCupoCliente.Text);
                respuestaADevolver = true;
            }
            catch (Exception)
            {

                respuestaADevolver = false;
            }

            return respuestaADevolver;

        }


        private void GuardarNuevoClienteYaValidado()
        {
            String IdCliente = this.TxtIdCliente.Text;
            String nombres = this.TxtCupoCliente.Text;
            String apellidos = this.TxtApellidoCliente.Text;
            String telefono = this.TxtTelefonoCliente.Text;
            String direccion = this.TxtDireccionCliente.Text;
            
            String fechanacimiento = this.TxtFechaNacimientoCliente.Text;
            if (String.IsNullOrEmpty(fechanacimiento)) fechanacimiento = null;

            String correo = this.TxtEmailCliente.Text;
            int cupo = Convert.ToInt32(this.TxtCupoCliente.Text);

            CADCliente.NewCliente(IdCliente, nombres, apellidos, direccion, telefono, correo, fechanacimiento, cupo);
        }


        private void LimpiarCampos()
        {
 	        this.TxtIdCliente.Text = "";
            this.TxtNombreCliente.Text = "";
            this.TxtCupoCliente.Text = "";
            this.TxtApellidoCliente.Text = "";
            this.TxtTelefonoCliente.Text = "";
            this.TxtDireccionCliente.Text = "";
            this.TxtFechaNacimientoCliente.Text = "";
            this.TxtEmailCliente.Text = "";
            this.TxtCupoCliente.Text = "";
        }


        protected void BtnGuardarCliente_Click(object sender, EventArgs e)
        {

            if (HayCamposObligatoriosvacios())
            {
                this.LabelMensajeAltaCliente.Text = "Complete los campos obligatorios.";
                return;
            }


            //if (!EsCorrectoFormatoDeFecha())
            //{
            //    this.LabelMensajeAltaCliente.Text = "Ingrese formato fecha válido.";
            //    return;
            //}

            if (!CupoEsUnNumero())
            {
                this.LabelMensajeAltaCliente.Text = "El cupo debe ser un numero";
                return;
            }


            String IdCliente = this.TxtIdCliente.Text;
            if (CADCliente.ExisteCliente(IdCliente))
            {
                this.LabelMensajeAltaCliente.Text = "Ya existe cliente " + IdCliente;
                return;
            }



            GuardarNuevoClienteYaValidado();
            this.LabelMensajeAltaCliente.Text = "Se guardo ok cliente " + IdCliente;
            
            this.GridViewClientes.DataBind();
            LimpiarCampos(); 

  
        }


        
    }
}